//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#include "CathPDBProfile.h"
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
CathPDBProfile::CathPDBProfile () {

  this->fastaProfile    = new CathFASTAProfile ();
  this->pdbAtomDomain   = new DomainPDBAtom ();
  this->pdbHetAtmDomain = new DomainPDBHetAtm ();

}
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
CathPDBProfile::CathPDBProfile (const CathPDBProfile& cathPDBProfile) {

  this->fastaProfile    = new CathFASTAProfile (cathPDBProfile.fastaProfile);
  this->pdbAtomDomain   = new DomainPDBAtom (cathPDBProfile.pdbAtomDomain);
  this->pdbHetAtmDomain = new DomainPDBHetAtm (cathPDBProfile.pdbHetAtmDomain);

}
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
CathPDBProfile::CathPDBProfile (const CathPDBProfile* cathPDBProfile) {

  this->fastaProfile    = new CathFASTAProfile (cathPDBProfile->fastaProfile);
  this->pdbAtomDomain   = new DomainPDBAtom (cathPDBProfile->pdbAtomDomain);
  this->pdbHetAtmDomain = new DomainPDBHetAtm (cathPDBProfile->pdbHetAtmDomain);

}
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
CathPDBProfile::~CathPDBProfile () {
  
  if (this->fastaProfile)    delete this->fastaProfile;
  if (this->pdbAtomDomain)   delete this->pdbAtomDomain;
  if (this->pdbHetAtmDomain) delete this->pdbHetAtmDomain;
    
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
void CathPDBProfile::FastaProfile (CathFASTAProfile* fastaProfile) {
  
  if (fastaProfile) *(this->fastaProfile) = *(fastaProfile);
  
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
void CathPDBProfile::PdbAtomDomain (DomainPDBAtom* pdbAtomDomain) {
  
  if (pdbAtomDomain) *(this->pdbAtomDomain) = *(pdbAtomDomain);
  
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
void CathPDBProfile::PdbHetAtmDomain (DomainPDBHetAtm* pdbHetAtmDomain) {
  
  if (pdbHetAtmDomain) *(this->pdbHetAtmDomain) = *(pdbHetAtmDomain);
  
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
CathFASTAProfile* CathPDBProfile::FastaProfile (void) {
 
  return this->fastaProfile;
  
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
DomainPDBAtom* CathPDBProfile::PdbAtomDomain (void) {
  
  return this->pdbAtomDomain;
  
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
DomainPDBHetAtm* CathPDBProfile::PdbHetAtmDomain (void) {
  
  return this->pdbHetAtmDomain;
  
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
CathPDBProfile CathPDBProfile::operator= (const CathPDBProfile& cathPDBProfile) {
  
  *(this->fastaProfile)    = *(cathPDBProfile.fastaProfile);   
  *(this->pdbAtomDomain)   = *(cathPDBProfile.pdbAtomDomain);   
  *(this->pdbHetAtmDomain) = *(cathPDBProfile.pdbHetAtmDomain);   

  return *this;
  
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
